FillV2
创建一个Tensor,根据指定的shape,将其值由value进行填充。
- 输入:
value - 填充值的地址
length - 由指定shape计算出的张量总长度。
type_size - 填充值的数据类型的长度
core_mask - 核掩码。
- 输出:
output - 输出地址。
- 支持平台:
FT78NEMT7004
备注
FT78NE 支持int8, int16, int32, fp32, fp64, cplx64, cplx128
MT7004 支持fp16, fp32, int16, int32, cplx64
共享存储版本:
-
void anytype_fillv2_s(void *value, void *output, int length, int type_size, int core_mask)
对于不同数据类型,改变type_size参数即可。
C调用示例:
1void main() {
2 float* input = (float*)0xA0000000;
3 float value = 789.1;
4 float* output = (float*)0x88000000;
5 int i;
6 int length = 1000;
7 int core_mask = 0b1111;
8 int core_id = get_core_id();
9 int logic_core_id = GetLogicCoreId(core_mask, core_id);
10 int core_num = GetCoreNum(core_mask);
11 if (logic_core_id == 0) {
12 *input = value;
13 }
14 sys_bar(0, core_num); // 初始化参数完成后进行同步
15 anytype_fillv2_s(input, output, length, 4, core_mask);
16}
私有存储版本:
-
void anytype_fillv2_p(void *value, void *output, int length, int type_size, int core_mask)
C调用示例:
1void main() {
2 float* input = (float*)0x10000000;
3 float value = 789.1;
4 float* output = (float*)0x10010000;
5 int i;
6 int length = 1000;
7 int core_mask = 0b0001; // 要启动哪一个核,就将哪一位设置为1,只允许存在一个核心启动
8 *input = value;
9 anytype_fillv2_p(input, output, length, 4, core_mask);
10}